package com.zenithmind.task.pojo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 任务依赖VO类
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
public class TaskDependencyVO {

    /**
     * 依赖ID
     */
    private String id;

    /**
     * 前置任务ID
     */
    private String predecessorId;

    /**
     * 前置任务标题
     */
    private String predecessorTitle;

    /**
     * 前置任务状态
     */
    private Integer predecessorStatus;

    /**
     * 前置任务状态文本
     */
    private String predecessorStatusText;

    /**
     * 后续任务ID
     */
    private String successorId;

    /**
     * 后续任务标题
     */
    private String successorTitle;

    /**
     * 后续任务状态
     */
    private Integer successorStatus;

    /**
     * 后续任务状态文本
     */
    private String successorStatusText;

    /**
     * 依赖类型：1-完成后开始(FS)，2-开始后开始(SS)，3-完成后完成(FF)，4-开始后完成(SF)
     */
    private Integer dependencyType;

    /**
     * 依赖类型文本
     */
    private String dependencyTypeText;

    /**
     * 延迟天数
     */
    private Integer lagDays;

    /**
     * 依赖强度：1-强依赖（必须），2-弱依赖（建议）
     */
    private Integer dependencyStrength;

    /**
     * 依赖强度文本
     */
    private String dependencyStrengthText;

    /**
     * 创建者ID
     */
    private String creatorId;

    /**
     * 创建者名称
     */
    private String creatorName;

    /**
     * 依赖描述
     */
    private String description;

    /**
     * 是否激活
     */
    private Boolean isActive;

    /**
     * 是否满足条件
     */
    private Boolean isSatisfied;

    /**
     * 状态：0-禁用，1-启用
     */
    private Integer status;

    /**
     * 状态文本
     */
    private String statusText;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
}
